﻿@{
    ViewBag.Title = "Chat";
}

<h2>Chat</h2>
<div class="container">
    <input type="text" id="message" />
    <input type="button" id="sendmessage" value="Send" />
    <input type="hidden" id="displayname" />
    <ul id="discussion">
    </ul>
</div>
@section scripts {
    <!--注意：这里的jQuery脚本已经在模板页_Layout.cshtml中引用-->
    <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>
    <!--signalr自动生成的脚本-->
    <script src="~/signalr/hubs"></script>
    <script>
        $(function () {
            //声明hub代理
            var chat = $.connection.chatHub;
            //创建后端要调用的前端function
            chat.client.addNewMessageToPage = function (name, message) {
                //将信息添加到页面上
                $('#discussion').append('<li><strong>' + htmlEncode(name) + '</strong>:' + htmlEncode(message) + '</li>');
            };
            //获取输入的名称
            $('#displayname').val(prompt('Enter your name:', ''));
            //将焦点定位在信息输入框中
            $('#message').focus();
            //开启链接
            $.connection.hub.start().done(function () {
                $('#sendmessage').click(function () {
                    //调用后台hub的Send方法
                    chat.server.send($('#displayname').val(), $('#message').val());
                    //清除发送的内容，并将焦点定位到信息框
                    $('#message').val('').focus();
                });
            });
            //该function防止JS注入
            function htmlEncode(value) {
                var encodeValue = $('<div/>').text(value).html();
                return encodeValue;
            }
        });
    </script>
}